// 按需导入发送请求的函数
import { request } from '../../request/index.js'
// 默认导入的方式导入runtime.js文件
import regeneratorRuntime from '../../lib/runtime/runtime.js'
Page({
  /**
     * 页面的初始数据
     */
  data: {
    // 左侧菜单栏的数据
    leftMenuList: [],
    // 右侧列表的数据
    rightList: [],
    // 左侧菜单栏中被激活的项的索引
    activeIndex: 0,
    // 右侧内容距离顶部的距离
    scrollTop: 0
  },
  // 定义一个变量Cates，用来放分类的总的数据
  Cates: [],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // this.getCatesList();
    // 先获取到本地存储的数据
    const Cates = wx.getStorageSync('cates');
    // 判断这个值是否存在
    if (!Cates) {
      // 本地不存在数据；就发送请求获取数据
      this.getCatesList()
    } else {
      // 本地存在数据，判断是否过期 假如过期时间为5分钟
      if (Date.now() - Cates.teme > 5 * 60 * 1000) {
        // 过期了重新发送请求
        this.getCatesList()
      } else {
        // 没有过期，可以使用
        // console.log("没有过期可以使用");
        this.Cates = Cates.data
        this.setData({
          // 在Cates中拿出来左侧的数据赋值给data中的leftMenuList
          leftMenuList: this.Cates.map(item => item.cat_name),
          // 在Cates中拿出来左侧数据中的第一个对应的右侧的数据赋值给data中的rightList
          rightList: this.Cates[0].children
        })
      }
    }

  },
  // 获取分类数据的函数
  async getCatesList() {
    // request({
    //   url: '/categories'
    // })
    //   .then(res => {
    //     // console.log(res);
    //     this.Cates = res.data.message;
    //     // 把数组存储在本地中
    //     wx.setStorageSync('cates', { time: Date.now(), data: this.Cates });

    //     this.setData({
    //       // 在Cates中拿出来左侧的数据赋值给data中的leftMenuList
    //       leftMenuList: this.Cates.map(item => item.cat_name),
    //       // 在Cates中拿出来左侧数据中的第一个对应的右侧的数据赋值给data中的rightList
    //       rightList: this.Cates[0].children
    //     })
    //   })

    // 使用es7语法async和await关键字来发送异步请求
    const res = await request({ url: '/categories' })
    // console.log(res);
    this.Cates = res;
    // 把数组存储在本地中
    wx.setStorageSync('cates', { time: Date.now(), data: this.Cates });

    this.setData({
      // 在Cates中拿出来左侧的数据赋值给data中的leftMenuList
      leftMenuList: this.Cates.map(item => item.cat_name),
      // 在Cates中拿出来左侧数据中的第一个对应的右侧的数据赋值给data中的rightList
      rightList: this.Cates[0].children
    })

  },
  // 点击左侧菜单栏的时候
  handleItemIndex(e) {
    // console.log(e);
    let index = e.currentTarget.dataset.index
    // console.log(index);
    // 把这个点击的索引赋值给data中的activeIndex
    this.setData({
      activeIndex: index,
      rightList: this.Cates[index].children,
      scrollTop: 0

    })
  }

})